package SwordFingerOffer;

import java.util.HashSet;

public class Q61_IsStraight {

    //判断扑克牌是不是顺子
    //2～10为数字本身，A为1，J为11，Q为12，K为13，而大、小王为 0 ，
    //可以看成任意数字。A 不能视为 14。
    //突破点在于大小王 ==> 可以当成任意数字
    public boolean isStraight(int[] nums) {

        int zero = 0;
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        HashSet<Integer> set = new HashSet<>();
        for (int num : nums) {
            if (set.contains(num)) {
                return false;
            }
            if (num != 0) {
                set.add(num);
                max = Math.max(max, num);
                min = Math.min(min, num);
            } else {
                zero++;
            }
        }
        return max - min - 1 - set.size() + 2 <= zero  ;
    }

    public static void main(String[] args) {
        Q61_IsStraight fun = new Q61_IsStraight();
        System.out.println(fun.isStraight(new int[]{4,7,5,9,2}));
    }
}
